package bomberman.modelo.observadores;

import java.io.IOException;

import bomberman.modelo.Partida;
import bomberman.modelo.obstaculos.BloqueCemento;
import bomberman.vista.Dimensionador;
import bomberman.vista.obstaculos.VistaBloqueCemento;
import bomberman.vista.obstaculos.VistaBloqueCementoDaniado;

public class ObservadorBloqueCemento implements IObservador {
  
  private Partida partida;
  
  public ObservadorBloqueCemento(Partida partida) {
    this.partida = partida;
  }
  
  @Override
  public void actualizar(Object arg) {
    if (((BloqueCemento) arg).getResistencia() == 0) {
      this.partida.retirarVista(arg);
    } else {
      try {
        if (!(this.partida.getGameLoop().getObjetosDibujables().contains(this.partida.getTraductor().get(arg)))) {
          this.partida.agregarVista(arg, new VistaBloqueCemento(new Dimensionador((BloqueCemento) arg)));
        } else {
          if (((BloqueCemento) arg).getResistencia() <= 5) {
            this.partida.cambiarVista(arg, new VistaBloqueCementoDaniado(new Dimensionador((BloqueCemento) arg)));
          }
        }
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }
}
